package com.neu.envprotection.feedback.service;

import com.neu.envprotection.common.resp.PageRespDto;
import com.neu.envprotection.common.resp.RestResp;
import com.neu.envprotection.feedback.dao.entity.City;
import com.neu.envprotection.feedback.dao.entity.Provience;
import com.neu.envprotection.feedback.dao.entity.Rank;
import com.neu.envprotection.feedback.dto.req.*;
import com.neu.envprotection.feedback.dto.resp.FeedbackRespDto;
import com.neu.envprotection.feedback.dto.resp.ReportChinaChartsRespDto;
import com.neu.envprotection.feedback.dto.resp.SupervisorPersonalInfoRespDto;

import java.util.List;

public interface SupervisorService {
    //监督者选择网格
    RestResp<List<Provience>> showAllProvince();
    //根据选择的省展示市
    RestResp<List<City>> showCitiesRingP(Integer provinceId);
    //监督者填写具体地址
    RestResp<Void> insertSpecificGrid(SupervisorSpecificGridReqDto supervisorSpecificGridReqDto);
    //展示所有的等级
    RestResp<List<Rank>> showAllRanks();
//    //监督者查看所有历史反馈信息
//    RestResp<List<ViewJudgeRespDto>> viewFeedback(Integer userId);
    //监督者添加反馈信息
    RestResp<Void> insertFeedback(SupervisorFeedbackAddReqDto supervisorFeedbackAddReqDto);
    //监督者查看反馈记录
    RestResp<PageRespDto<FeedbackRespDto>> viewFeedback(SupervisorFeedbackViewReqDto supervisorFeedbackViewReqDto);
    //监督者查看个人信息，其中phoneNumber/birthday/sex未知，需传回
    RestResp<SupervisorPersonalInfoRespDto> getPersonalInfo(Integer userId);
    //监督者更改个人信息
    RestResp<Void> updateInfo(SupervisorUpdateReqDto supervisorUpdateReqDto);
    //监督者更改密码
    RestResp<Void> updatePassword(SupervisorUpdatePwdReqDto supervisorUpdatePwdReqDto);

    RestResp<List<ReportChinaChartsRespDto>> getProvinceAQI();

}
